//////////////////////////////////////////////////////////////////////////
#pragma once


//////////////////////////////////////////////////////////////////////////
#include <RocketLua/RocketLua.hpp>


namespace Rocket
{
	namespace Core
	{
		namespace Lua
		{
			//////////////////////////////////////////////////////////////////////////
			class ROCKETLUA_EXPORT Colorf
			{
			public:
				Colorf();
				Colorf( float r, float g, float b, float a );

				Colorf&				Set( float r, float g, float b, float a );

				bool				operator ==( const Colorf& rhs ) const;

				Colorf				operator +( const Colorf& rhs ) const;
				Colorf				operator -( const Colorf& rhs ) const;
				Colorf				operator *( float rhs ) const;
				Colorf				operator /( float rhs ) const;

				Colorf				Clamp( float low, float high ) const;

				float				R() const;
				float				G() const;
				float				B() const;
				float				A() const;
				void				R( float );
				void				G( float );
				void				B( float );
				void				A( float );

				static void			Register( lua_State* );

			private:
				//
				float				mR;
				float				mG;
				float				mB;
				float				mA;
			};
		}
	}
}
